package com.hzeport.bgs22emduty.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hzeport.bgs22emduty.config.login.UserInfoDetailVO;
import com.hzeport.bgs22emduty.dto.DutydignInfoListDTO;
import com.hzeport.bgs22emduty.dto.DutydignInfoListoneDTO;
import com.hzeport.bgs22emduty.entity.DutyScheduleInfo;
import com.hzeport.bgs22emduty.vo.dutydignInfo.DutydignInfoAnswerSaveVO;
import com.hzeport.bgs22emduty.vo.dutydignInfo.DutydignInfoListVO;
import com.hzeport.bgs22emduty.vo.dutydignInfo.DutydignInfoListoneVO;
import com.hzeport.bgs22emduty.vo.dutydignInfo.DutydignInfoSaveVO;
import com.hzeport.bgs22emduty.common.base.BaseResult;
import com.hzeport.bgs22emduty.common.base.BaseService;
import com.hzeport.bgs22emduty.entity.DutySignInfo;

import java.time.LocalDateTime;
import java.util.List;

/**
 * ${comments}
 *
 * @author code generator
 * @date 2022-12-02 11:21:59
 */
public interface DutySignInfoService extends BaseService<DutySignInfo> {

    BaseResult<Page<DutydignInfoListVO>> list(DutydignInfoListDTO dutydignInfoListDTO, UserInfoDetailVO userInfo);

    BaseResult<Page<DutydignInfoListoneVO>> listone(DutydignInfoListoneDTO dutydignInfoListoneDTO, UserInfoDetailVO userInfo);

    BaseResult saveData(DutydignInfoSaveVO dutydignInfoSaveVO) throws Exception;

    BaseResult answer(DutydignInfoAnswerSaveVO dutydignInfoAnswerSaveVO) throws Exception;

    DutyScheduleInfo getSignInTaragetScheduleInfo(List<DutyScheduleInfo> dutyScheduleInfos, LocalDateTime now);

    DutyScheduleInfo getSignOutTaragetScheduleInfo(List<DutyScheduleInfo> dutyScheduleInfos, LocalDateTime now);
}
